<?php
class AlertasView extends CustomView
{

    public function historialViaje($vars)
    {
        $this->top();
        $this->setTemplate('historial_viaje');
        $this->parse('historial_viaje', $vars);
        {
            if (!empty($vars['historial']))
            {
                foreach ($vars['historial'] as $punto)
                {
                    $this->prepararPunto($punto);
                    $this->parse('punto', $punto);
                }
            }
        }
        $this->parse('historial_viaje', $vars);
        $this->bottom();
    }

    private function prepararPunto(&$punto)
    {
        $punto['esperado']        = date('d/m/Y H:i:s', $punto['timestamp_esperado']);
        $punto['real']            = (!empty($punto['timestamp_lectura']))?date('d/m/Y H:i:s', $punto['timestamp_lectura']):'--';
        $punto['proximo']         = (!empty($punto['timestamp_proximo']))?date('d/m/Y H:i:s', $punto['timestamp_proximo']):'--';
        $punto['tolerancia']      = (empty($punto['tolerancia']))?'--':$punto['tolerancia'].' segundos';
        $punto['tiempo_esperado'] = $punto['tiempo_esperado'].' segundos';
        $punto['diferencia']      = isset($punto['diferencia'])?(($punto['diferencia'])?$punto['diferencia'].' segundos':'NO HUBO'):'--';
        $punto['tipo_retraso']    = (empty($punto['alerta_tiempo']))?'':(($punto['diferencia'] > 0)?'adelantado':'retrasado');
        $punto['desvio']          = (empty($punto['alerta_desvio']))?'NO':'SI';
        $punto['es_desvio']       = (empty($punto['alerta_desvio']))?'':'es_desvio';
    }

    public function historialPorVehiculo($vars, $results = false)
    {
        $this->top();
        $this->setTemplate('historial_por_unidad');
        $this->parse('historial_por_unidad', $vars);
        {
            if (!empty($vars['vehiculos']))
            {
                foreach ($vars['vehiculos'] as $vehiculo)
                {
                    if (isset($vars['vehiculo']) && ($vehiculo['idvehiculo'] == $vars['vehiculo']['idvehiculo']))
                    {
                        $vehiculo['selected'] = 'selected="selected"';
                    }
                    $this->parse('vehiculo', $vehiculo);
                }
            }
        }
        $this->parse('historial_por_unidad', $vars);
        {
            if ($results)
            {
                $vars['pagination'] = $this->buildPagination($vars['pagination_link'], $vars['viajes']);
                $this->parse('vehiculo_viajes', $vars);
                {
                    foreach($vars['viajes']['results'] as $viaje)
                    {
                        $viaje['link_historial_viaje'] = $vars['link_historial_viaje'].$viaje['idviaje'];
                        $viaje['retrasos']             = 0;
                        $viaje['adelantos']            = 0;
                        $viaje['desvios']              = 0;
                        foreach($viaje['historial'] as $punto)
                        {
                            if ($punto['alerta_tiempo'] && ($punto['diferencia'] < 1)) $viaje['retrasos']++;
                            if ($punto['alerta_tiempo'] && ($punto['diferencia'] > 1)) $viaje['adelantos']++;
                            if ($punto['alerta_desvio']) $viaje['desvios']++;
                        }
                        $this->parse('viaje', $viaje);
                    }
                }
                $this->parse('vehiculo_viajes', $vars);
            }
        }
        $this->parse('historial_por_unidad', $vars);
        $this->bottom();
    }

    public function historialPorGrupo($vars, $results = false)
    {
        $this->top();
        $this->setTemplate('historial_por_grupo');
        $this->parse('historial_por_grupo', $vars);
        {
            if (!empty($vars['grupos']))
            {
                foreach ($vars['grupos'] as $grupo)
                {
                    if (isset($vars['grupo']) && ($grupo['idgrupo'] == $vars['grupo']['idgrupo']))
                    {
                        $grupo['selected'] = 'selected="selected"';
                    }
                    $this->parse('grupo', $grupo);
                }
            }
        }
        $this->parse('historial_por_grupo', $vars);
        {
            if ($results)
            {
                $vars['pagination'] = $this->buildPagination($vars['pagination_link'], $vars['viajes']);
                $this->parse('grupo_viajes', $vars);
                {
                    foreach($vars['viajes']['results'] as $viaje)
                    {
                        $viaje['link_historial_viaje'] = $vars['link_historial_viaje'].$viaje['idviaje'];
                        $viaje['retrasos']             = 0;
                        $viaje['adelantos']            = 0;
                        $viaje['desvios']              = 0;
                        foreach($viaje['historial'] as $punto)
                        {
                            if ($punto['alerta_tiempo'] && ($punto['diferencia'] < 1)) $viaje['retrasos']++;
                            if ($punto['alerta_tiempo'] && ($punto['diferencia'] > 1)) $viaje['adelantos']++;
                            if ($punto['alerta_desvio']) $viaje['desvios']++;
                        }
                        $this->parse('viaje', $viaje);
                    }
                }
                $this->parse('grupo_viajes', $vars);
            }
        }
        $this->parse('historial_por_grupo', $vars);
        $this->bottom();
    }

    public function historialGeneral($vars, $results = false)
    {
        $this->top();
        $this->setTemplate('historial');
        $this->parse('historial', $vars);
        {
            if ($results)
            {
                $vars['pagination'] = $this->buildPagination($vars['pagination_link'], $vars['viajes']);
                $this->parse('viajes', $vars);
                {
                    foreach($vars['viajes']['results'] as $viaje)
                    {
                        $viaje['link_historial_viaje'] = $vars['link_historial_viaje'].$viaje['idviaje'];
                        $viaje['retrasos']             = 0;
                        $viaje['adelantos']            = 0;
                        $viaje['desvios']              = 0;
                        foreach($viaje['historial'] as $punto)
                        {
                            if ($punto['alerta_tiempo'] && ($punto['diferencia'] < 1)) $viaje['retrasos']++;
                            if ($punto['alerta_tiempo'] && ($punto['diferencia'] > 1)) $viaje['adelantos']++;
                            if ($punto['alerta_desvio']) $viaje['desvios']++;
                        }
                        $this->parse('viaje', $viaje);
                    }
                }
                $this->parse('viajes', $vars);
            }
        }
        $this->parse('historial', $vars);
        $this->bottom();
    }

}
?>